The present invention relates to the use of communication protocols within computerized devices, and in particular to modules that emulate one protocol on top of another protocol.
Computers and components communicate by sending and receiving electrical signals that represent data in the form of bits. The interfaces used for such communication are roughly categorized into serial interfaces, in which a single bit is transferred at a time, and parallel interfaces, in which multiple bits are transferred concurrently. Parallel interfaces vary in the number of data bits that are transferred concurrently, which can be considered to be the “breadth” of the interface; i.e. a sixteen-bit interface is “broader” than a four-bit interface, and the narrowest interface is obviously the serial interface that moves a single bit at a time.
Broader interfaces offer, potentially, a higher flow-rate of data, but require multi-wire connecting cables and circuits. This makes them more suitable for internal communication among computer components; accordingly the standard data bus of most computers uses parallel interfaces of 16-64 bits. Another important advantage of a parallel interface is in its being suitable for RAM protocols that run applications directly from memory, and specifically boot code protocols that initialize the fundamental functionalities of a computer or a computerized appliance upon the appliance being connected to a power source. When connecting a computer to external or detachable components, such as peripherals or memory cards, the size and reliability of the connectors and cables become a primary consideration, which pushes connections to peripherals or detachable components toward narrower interfaces, often serial interfaces.
Three commonly-used narrow interfaces for connecting external devices or detachable components that have been standardized by the computer industry are Universal Serial Bus (USB) that is a serial interface, MultiMediaCard (MMC) that is a narrow interface of one to eight bits, and SecureDigital (SD) that is a narrow interface of one to four bits. These standards define physical, electrical and logical characteristics that ensure efficient and reliable data transfer between devices that implement the standards.
When a computer or computerized appliance uses a bus of 16-64 bits internally and communicates externally through narrower buses of, typically, 1-8 bits, protocol converters, usually in the form of hardware components or subcomponents, are included to transform one communication protocol to another.
FIG. 1 illustrates an exemplary system 100 of the background art, wherein a host 110, for example a personal computer or computerized appliance, is connected to a peripheral storage device 130 via a USB link 126. A USB link, under the USB standard, uses four wires, but only one data bit is transferred at a time. Host 110 has a CPU (central processing unit) 112 that is configured by applications and drivers (not shown) to send storage-related commands, such as read and write commands, to storage device 130. Such commands leave CPU 112 on an internal bus 124 that is designed according to the architecture of internal computer buses for communication between CPU 112 and all internal components (e.g. hard disk, optical drive, modem, network card, etc.), and that is usually a broad parallel interface of 16 to 64 bits. A host controller 116 converts the commands that have been received from CPU 112 into a serial USB protocol in order to send the commands through a serial USB link 126. When received by a client controller 134, the commands are transformed by controller 134 to commands transferred through a parallel communication link 144, for executing the actual storage-related operations on a storage module 136. Controller 134 contains a communication controller 138 and a storage management controller 132. It will be noted that controller 134 is representative of all components of storage device 130 that include processing capability, and may be implemented as a single or multiple physical units.
The popularity of external peripherals and detachable components has pushed many popular software modules, component designs and commercial components toward narrower communication interfaces, such as USB or MMC. A special situation of interest arises, however, when a designer of an appliance is attracted by the performance, standardization, availability or cost of a design adapted for a protocol of a narrow interface such as USB or MMC, while wishing to fix that component permanently within an appliance. In such a situation, the benefits of narrow interfaces for external connections or detachability become irrelevant, and the employment of hardware protocol converters that are customarily used for detachable or externally-connected components implies extra complexity, cost, space, and possibly also degraded performance.
There is thus a need for solutions that allow integrating component designs originally adapted for narrow interfaces, into appliances that use a broader communication interface, without the need for protocol conversion by hardware.